package com.zhang.boot.core.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhang.boot.core.entity.User;
import com.zhang.boot.core.vo.router.RouterVo;
import com.zhang.boot.core.vo.user.UserInfoVo;

import java.util.List;

public interface UserService extends IService<User> {

    /**
     * 根据用户名获取用户
     *
     * @param username 用户名
     * @return
     */
    User getByUsername(String username);

    /**
     * 根据手机号获取用户
     *
     * @param phone 手机号
     * @return
     */
    User getByPhone(String phone);

    /**
     * 根据邮箱获取用户
     *
     * @param email
     * @return
     */
    User getByEmail(String email);

    /**
     * 根据账号获取用户
     *
     * @param account 用户名、手机号、邮箱
     * @return
     */
    User getByAccount(String account);

    /**
     * 判断用户是否是管理员
     *
     * @param user
     */
    boolean checkAdmin(User user);

    /**
     * 获取用户信息
     *
     * @return
     */
    UserInfoVo getUserInfo();

    /**
     * 获取用户路由信息
     *
     * @return
     */
    List<RouterVo> getRouters();
}
